
void crea_popolon()
{
     popolon.alpha=255;                                                         // fija el nivel de alpha
     popolon.createxturas("sprites/popolon.dat");
     popolon.x=300;
     popolon.y=220;
     popolon.animstart=0;
     popolon.animpos=0;
     popolon.animspeed=25;
     popolon.animcount=2;
     popolon.escala=1.0;
     is_popolon_invisible=false;                                                // 
     is_popolon_fire=false;                                                     // 
}

void pinta_popolon(double mappos)
{
      /* popolon */
     if (popolon_speed>6.0) popolon_speed=6.0;                                  // check popolon speed limit;
     popolon.animstart=0;                                                       // Normal mode
     popolon.animspeed=25;
     /* popolon invisible */
     if (is_popolon_invisible) 
     {
       Tinvisible.countdown();
       char cadena[14];
       sprintf (cadena,"%d",Tinvisible.count);
       popolon.animstart=2;                                                     // anim pos
       nintendo.escala=0.9;
       nintendo.usaalpha=false;                                                // set text alpha off
       nintendo.escribe(60,0,cadena,15);
       nintendo.usaalpha=true;
       nintendo.escala=0.6;                                                    // rest text scale.
       if (Tinvisible.count==0) is_popolon_invisible=false; 
      } 
     /* popolon in flames */
     if (is_popolon_fire) 
      { 
        Tfire.countdown();
        char cadena[14];
        sprintf (cadena,"%d",Tfire.count);
        popolon.animspeed=200;                                                  // anim speed up
        popolon.animstart=4;                                                    // in fire
        nintendo.escala=0.9;
        nintendo.usaalpha=false;                                                // set text alpha off
        nintendo.escribe(600,0,cadena,15);
        nintendo.usaalpha=true;
        nintendo.escala=0.6;                                                    // rest text scale.
        if (Tfire.count==0) is_popolon_fire=false; 
      }
                              
     /* check collisions */
     SDL_Rect recta; // popolon rect    
     SDL_Rect rectb; // other sprite
     /* popolon propertys */
     recta.x=int(popolon.x);
     recta.y=int(popolon.y);
     recta.w=popolon.w;
     recta.h=popolon.h;
     /* colision con la opcion de las armas */
     if (optionw.visible==true)
      if (popolon.collision(&optionw.rect))
        {
         Sbonus.play();
         /* puntos */
         if (optionw.animpos<2)             puntos+=1000;                        // option flashes                                
          /* flechas armas 0 y 1 */
         if (optionw.animpos==2)            arma = 0;                           // normal arrows
         if (optionw.animpos==3 && arma==1) puntos+=1000;                       // repeat double arraow = 1000 points
         if (optionw.animpos==3)            arma = 1;                           // double arrows
         /* bolas de fuego 2 y 3*/
         if (optionw.animpos==4 && arma==2) { arma=3;optionw.animpos=0;}        // arma cogida.
         if (optionw.animpos==4)            arma=2; 
         if (optionw.animpos==4 && arma==3) puntos+=1000;
         /* boomerang armas 4 y 5 */
         if (optionw.animpos==5 && arma==4) { arma=5;optionw.animpos=0;}        // doble
         if (optionw.animpos==5)            arma=4;                             // simple
         if (optionw.animpos==5 && arma==4) puntos+=1000;                       // puntos
         /* espadas armas 6 y 7 */
         if (optionw.animpos==6)            arma=6; 
         if (optionw.animpos==7 && arma==7) puntos+=1000; 
         if (optionw.animpos==7)            arma=7; 
         /* flechas de fuego armas 8 y 9*/
         if (optionw.animpos==8)            arma=8; 
         if (optionw.animpos==9 && arma==9) puntos+=1000; 
         if (optionw.animpos==9)            arma=9; 
         optionw.visible=false;                                                 // delete option
         optionw.animpos=0;   
         } // if


        /* Option collision */
        if (option.visible==true)
         if (popolon.collision(&option.rect))
            {
             Sbonus.play();
             switch (int(option.animpos))
             {
              case 0: puntos+=1000;break;
              case 1: popolon_speed+=1.0;popolon.animspeed+=10;break;             // option speed
              case 2: shield_hits=0.0;shield.visible=true;break;                  // Shield on    
              case 3: Tinvisible.set_time(invisible_time);
                      is_popolon_invisible=true;break;                            // invisibility on   
              case 4: Tfire.set_time(fire_time);is_popolon_fire=true;break;       // fire on;
            }                                                                                                      
             option.visible=false;
           }
     if (popolon.x<0 || popolon.y>video.ancho ) popolon.y+=scroll_speed;        // si se sale de los margenes no acanza arriba
    
     popolon.pinta();
     popolon.anima();
}
